package negocio;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import persistencia.mappers.CitaMapper;
import bean.Cita;
import bean.Diagnostico;
import util.MyBatisUtil;

public class CitaService {
	
	public List<Cita> listarCitasHoy(){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		List<Cita> listCita = citaMapper.listarCitasHoy();
		session.close();
		return listCita;	
	}
	
	public List<Cita> listarCitasXfecha(Cita cita){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		List<Cita> listCita = citaMapper.listarCitasXfecha(cita);
		session.close();
		return listCita;	
	}
	public List<Cita> listarCitasXcliente(Cita cita){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		List<Cita> listCita = citaMapper.listarCitasXcliente(cita);
		session.close();
		return listCita;	
	}
	public Cita showActualizarCitas(int citaCodi){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		Cita cita = citaMapper.showActualizarCitas(citaCodi);
		session.close();
		return cita;	
	}
	public short validarDisponibilidadCita(Cita cita){
		short count = 0;
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		count = citaMapper.validarDisponibilidadCita(cita);
		session.close();
		return count;
	}
	
	
	public void registrarCita(Cita cita){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		citaMapper.registrarCita(cita);
		session.commit();
		session.close();
	}
	public void actualizarCita(Cita cita){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		citaMapper.actualizarCita(cita);
		session.commit();
		session.close();
	}
	public void eliminarCita(int citaCodi){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		citaMapper.eliminarCita(citaCodi);
		session.commit();
		session.close();
	}	
	//Diagnostico 
	public void registrarDiagnostico(Diagnostico diagnostico){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		citaMapper.registrarDiagnostico(diagnostico);
		session.commit();
		session.close();
	}
	public Diagnostico obtenerCitaDiagnostico(int citaCodi){
		SqlSession session=MyBatisUtil.getSqlSessionFactory().openSession();
		CitaMapper citaMapper=session.getMapper(CitaMapper.class);		
		Diagnostico diagnostico = citaMapper.obtenerCitaDiagnostico(citaCodi);
		session.close();
		return diagnostico;	
	}
}
